#ifndef TESTWRAPPER_H
#define TESTWRAPPER_H

#include <string>
#include <iostream>
#include <list>

// include your other headers here
#include "QueryEvaluator.h"
#include "AbstractWrapper.h"
#include "DesignEntityTable.h"
#include "Follows.h"
#include "Parent.h"
#include "Calls.h"
#include "Modifies.h"
#include "Uses.h"
#include "QueryPreprocessor.h"
#include "AST.h"
#include "ProcTable.h"
#include "VarTable.h"
#include "DesignExtractor.h"
#include "Parser.h"

class TestWrapper : public AbstractWrapper {
 public:
	 Follows followsTable;
	 Parent parentTable;
	 AST ast;
	 ProcTable procTable;
	 VarTable varTable;
	 Calls callsTable;
	 Modifies modifiesTable;
	 Uses usesTable;
	 DesignEntityTable *deTable;
	

  // default constructor
  TestWrapper();
  
  // destructor
  ~TestWrapper();
  
  // method for parsing the SIMPLE source
  virtual void parse(std::string filename);
  
  // method for evaluating a query
  virtual void evaluate(std::string query, std::list<std::string>& results);
};

#endif
